A Unidade Lógica e Aritmética (ULA) é um circuito combinatório responsável pela execução de somas, subtrações e funções lógicas, em um sistema digital. Na figura 1.1 é mostrado um esquema simplificado de uma ULA.
Figura 1.1 – Esquema de uma ULA.
Uma ULA pode ser construída como uma cascata de vários estágios idênticos.Não existem regras de como projetar cada estágio da ULA.Em geral, a aplicação determina o circuito de cada estágio da ULA. Uma vez estabelecido o porte do sistema, existe também o compromisso entre velocidade e preço. Por exemplo, as calculadoras eletrônicas exigem ULAs que permitem operações complexas, porém com velocidade de operação baixa, reduzindo-se o custo; já os computadores de grande porte exigem velocidade de operação elevada, aumentando o custo da ULA. Atualmente têm-se várias alternativas de circuitos integrados que incluem uma ULA. Entre elas estão o 74181, 74381 e 74LS881.
Circuito integrado
Existem diversos circuitos integrados disponíveis comercialmente que são classificados e vendidos como unidades lógicas-aritméticas (ULAs), mesmo que não apresentem a capacidade lógica e aritmética de uma ULA de computador.Esses CIs ULAs são capazes de realizar várias operações logicas e aritméticas diferentes com dados binários de entrada. A operação específica que um CI ULA executa é determinada pelo código binário específico que é aplicado nas entradas dos bits seletores de função.E cada CI ULA possui um conjunto específico de funções que pode executar, diferente das demais ULAs.
Circuito Integrado 74181–uma ULA de 4 bits O circuito integrado MSI 74181 é uma ULA de 4bits que tem possibilidade de executar 16 operações aritméticas binárias e 16 operações lógicas.
As saídas G e T são os sinais "gerador de vai-um", correspondentes ao bit mais significativo e, utilizando- se o circuito integrado 74182, permitem a expansão da largura da palavra a ser manipulada.
As operações de subtração são executadas em complemento de dois (C2). Por exemplo, (-1) é representado por (1111). As operações lógicas são executadas bit a bit. Por exemplo, se a operação AND é aplicada às entradas A = 1011 e B = 0110, resulta F = 0010.
A saída Cn+4 representa o sinal de vai-um do último bit da palavra. Ela pode ser usada para propagar o vai-um para o próximo estágio quando não há preocupação com a velocidade do circuito. O sinal Cn+4 também pode ser usado em conjunto com a saída A = B para indicar as condições A>B e A<B.
2. MEMÓRIAS A principal vantagem dos sistemas digitais sobre os analógicos é a capacidade de armazenar, facilmente, grandes quantidades de informação e dados por períodos longos ou curtos. Esta capacidade de memória é o que torna os sistemas digitais tão versáteis e adaptáveis às diversas situações. Por exemplo, em um computador digital, a memória principal armazena instruções que informam ao computador o que fazer sob qualquercircunstância possível, de modo que o computador realizará sua tarefa com um mínimo de intervenção humana.
2.1CLASSIFICAÇÃO DAS MEMÓRIAS
2.1.1 – ACESSO As memórias acessam informações em lugares denominados localidades de memória. Cada uma das localidades de memória possui um conjunto de bits que nos permite o seu acesso. A este conjunto de bits damos o nome de endereço. Esse conceito é de fácil compreensão, pois como próprio nome diz, o conjunto de bits representa o endereço da localidade onde está armazenada uma informação. O tempo de acesso de uma memória é o tempo necessário desde a entrada de um endereço até o momento em que a informação aparece na saída. Para as memórias de escrita/leitura é também o tempo necessário para a informação ser gravada. As localidades de memória podem ser acessadas de duas maneiras, que estão descritas nos itens a seguir.
1.1 Acesso sequencial As memórias que utilizam o acesso seqüencial, dado o endereço de certa localidade, permitem que se chegue até esta, passando por todas as localidades intermediárias. As memórias mais comuns com este tipo de acesso são as que operam com fitas magnéticas, sendo utilizadas como memória de massa em computadores. Uma característica importante deste tipo de acesso é que o tempo de acesso depende do lugar onde a informação está armazenada.
1.2 Acesso aleatório As memórias que utilizam o acesso aleatório, dado o endereço de certa localidade, permitem que se chegue até este diretamente, sem necessitar passar pelas localidades intermediárias. As principais memórias com este tipo de acesso são também conhecidas como RAM (Random-Accsess Memory). São largamente utilizadas em sistemas digitais programáveis. Possuem grande vantagem de ter um tempo de acesso pequeno e igual para qualquer uma das localidades de memória.
2.1.2 – VOLATILIDADE Quanto a volatilidade, as memórias podem ser voláteis ou não-voláteis.
2.1 – Memórias voláteis São as memórias que, ao ser cortada a alimentação, perdem as informações armazenadas. São memórias feitas, geralmente, a partir de semicondutores e na maioria das vezes, possuem como elemento de memória o flip-flop. Um exemplo é a memória RAM.
2.2 – Memórias não-vólateis São as memórias que mesmo sem alimentação, continuam com as informações armazenadas. Dentre essas se destacam as memórias magnéticas e as eletrônicas: ROM, PROM, e EPROM.
2.1.3 – TROCA DE DADOS Quanto à troca de dados com outros componentes do sistema, as memórias podem ser de escrita/leitura ou memórias apenas de leitura.
3.1 – Escrita/leitura As memórias de escrita/leitura são aquelas que permitem acesso a uma localidade qualquer para armazenar a informação desejada, além de permitirem o acesso também para a leitura do dado. As memórias RAM são exemplo.
3.2 – Apenas Leitura As memórias apenas de leitura, são aquelas em que a informação é fixa, só permitindo assim a leitura das mesmas. São também conhecidas como ROM (Read-Only Memory).
2.1.4 TIPOS DE ARMAZENAMENTO Quanto ao tipo de armazenamento, as memórias classificam-se em estáticas e dinâmicas.
4.1 Memórias de armazenamento estático As memórias de armazenamento estático são aquelas em que uma vez inserido o dado numa dada localidade, este lá permanece.
4.2 Memórias de armazenamento dinâmico As memórias de armazenamento dinâmico são aquelas em que necessitamos inserir a informação de tempos em tempos, pois de acordo com as características de seu elementos internos, as informações são perdidas após um determinado tempo.
2.1PRINCÍPIO DE OPERAÇÃO DA MEMÓRIA
Embora cada tipo de memória seja diferente na sua operação interna, certos princípios básicos de operação são iguais para todos os sistemas de memória. Uma compreensão dessas idéias básicas ajudará nosso estudo sobre os dispositivos de memória.
Todos os sistemas de memória necessitam de diversos tipos diferentes de linhas de entrada e de saída para realizar as seguintes funções: 1. Selecionar o endereço na memória que está sendo acessado para uma operação de leitura ou escrita. 2. Selecionar uma operação de leitura ou uma de escrita a ser realizada. 3.Fornecer os dados de entrada a serem armazenados na memória durante uma operação de escrita. 4. Manter os dados de saída vindos da memória durante uma operação de leitura. 5.Habilitar (ou desabilitar) a memória de modo que ela responda (ou não) às entradas de endereçamento e ao comando de leitura/escrita.
A Figura 1(a) ilustra essas funções básicas num diagrama simplificado de uma memória de 32 X 4 que armazena trinta e duas palavras de quatro bits. Tendo em vista que o tamanho da palavra é de quatro bits, existem quatro linhas de entrada de dados, I0 a I1, e quatro linhas de saída de dados, O0 a 03. Durante uma operação de escrita, o dado a ser armazenado na memória deve ser aplicado nas linhas de entrada de dados. Durante uma operação de leitura, a palavra que está sendo lida da memória aparece nas linhas de saída de dados.
Figura 1 (a)
2.2.1 ENTRADAS DE ENDEREÇO Como a memória ilustrada no diagrama da figura 1(a) armazena 32 palavras, ela tem 32 posições de armazenamento diferentes, e portanto possui 32 endereços binários diferentes, variando de 00000 até 11111 (0 a 31 em decimal). Logo, existem cinco entradas de endereço, A0 até A4. Para acessar uma das posições de memória para uma operação de leitura ou escrita, o código de endereçamento de cinco bits para essa posição é aplicado nas entradas de endereço. De um modo geral, N entradas de endereço são necessárias para uma memória que possui uma capacidade de 2^n palavras.
Podemos visualizar a memória da Figura 1(a) como um arranjo de 32 registradores, no qual cada registrador guarda uma palavra de quatro bits, conforme mostra a Figura 1(b). Cada posição é mostrada contendo quatro células de memória, que guardam ls ou Os, que formam a palavra de dados armazenada nesta posição. Por exemplo, a palavra de dados 0110 está armazenada no endereço 00000, a palavra de dados 1001 está armaz enada no endereço 00001, e assim por diante.
figura 1 (b)
2.2.2 A ENTRADA R/W' Esta entrada controla qual operação deve ser realizada na memória: leitura (R — Read) ou Escrita (W — Write). A entrada é identificada por RW', e, como não existe a barra sobre R, isto indica que a operação de leitura ocorre quando R/W' = 1. A barra sobre W indica que a operação de escrita acontece quando R/W' = 0. Outros identificadores são usados frequentemente para essa entrada. Dois dos mais comuns são W' (escrita) e (WE)' (write enable— habilitação de escrita). Novamente, a barra indica que a operação de escrita ocorre quando a entrada está em BAIXO. Fica subentendido que a operação de leitura ocorre para nível ALTO.
Uma ilustração simplificada das operações de leitura e escrita é mostrada na Figura 2. A parte (a) mostra o dado 0100 sendo escrito no registrador de memória da posição de endereço 00011. Este dado deve ser aplicado nas linhas de entrada de dados, e substitui o dado previamente armazenado no endereço 00011. A parte (b) mostra a palavra 1101 sendo lida do endereço 11110. Esta palavra deve aparecer nas linhas de saída de dados da memória. Após a operação de leitura, a palavra 1101 ainda está armazenada no endereço 11110. Isto é, a operação de leitura não altera o dado armazenado.
figura 2
2.2.3 HABILITAÇÃO DA MEMÓRIA Muitos sistemas de memória têm algum modo de desabilitar completamente uma parte ou toda a memória, de modo que ela não responde às outras entradas. Isto é representado na Figura 1(a) pela entrada ME, embora ela possa ter nomes diferentes nos vários sistemas de memória, tais como chip enable (CE) ou chip select (CS). Aqui ela é mostrada como uma entrada ativa em ALTO que habilita a memória a operar normalmente quando é mantida em ALTO. Um nível BAIXO nesta entrada desabilita a memória, de modo que ela não responderá às entradas de endereço e de R/W’. Esse tipo de entrada é útil quando vários módulos de memória são combinados para formar uma memória maior.
2.3 MEMÓRIAS SOMENTE DE LEITURA
A memória somente de leitura é um tipo de memória semicondutora que é projetada para armazenar dados imutáveis ou aqueles que não mudam com freqüência. Durante a operação normal, novos dados não podem ser escritos na ROM; somente os dados já armazenados podem ser lidos. Para alguns tipos de ROMs, os dados que estão armazenados devem ser colocados na memória durante o processo de fabricação; para outras ROMs, os dados podem ser colocados eletricamente. O processo de colocar os dados é chamado de programação ou "queima "da ROM. Algumas ROMs não podem ter seus dados modificados uma vez programados. Outras podem ser apagadas e reprogramadas tantas vezes quanto necessário.
2.3.1 MEMÓRIA ROM As ROMs são usadas para armazenar dados e informações que não devem ser alterados durante a operação normal de um sistema. A principal aplicação das ROMs é no armazenamento de programas em microcomputadores. Uma vez que todas as ROMs são não-voláteis, estes programas não são perdidos quando a fonte de alimentação é desligada. Quando o microcomputador é ligado, ele pode imediatamente começar a execução do programa armazenado na ROM. ROMs também são usadas em equipamentos controlados por microprocessador, tais como: caixas registradoras eletrônicas, aparelhos domésticos e sistemas de segurança.
Diagrama de blocos de uma ROM Um diagrama de blocos típico para uma ROM pode ser visto na Figura 3(a). Ele possui três grupos de sinais: entradas de endereço, entradas de controle e entradas de dados. Com base no que foi dito anteriormente, podemos dizer que esta ROM está armazenando 16 palavras, uma vez que 24 = 16 endereços possíveis, e que cada palavra contém 8 bits, pois existem oito saídas de dados. Portanto, esta é uma ROM de 16 X 8. Uma outra maneira de descrever a capacidade da ROM é dizer que ela armazena 16 bytes de dados.
As saídas de dados mais comuns da maioria dos CIs de ROMs são do tipo tristate, para permitir a conexão de vários chips de ROMs num mesmo barramento de dados para expansão de memória. Os números de saídas de dados maiscomuns são 4, 8 e 16 bits, sendo que palavras de 8 bits são as mais comuns.
A entrada de controle CS (chip select) é a entrada de seleção do chip. Ela é uma entrada que habilita ou não as saídas da ROM. Alguns fabricantes usam outros nomes para esta entrada de controle, tais como: CE (chip enable — habilitação do chip) ou OE (output enable — habilitação da saída). Muitas ROMs têm duas ou mais entradas de controle que devem estar ativas para que as saídas de dados sejam habilitadas e o conteúdo do endereço selecionado possa ser lido. Em alguns CIs de ROMs, uma das entradas de controle, geralmente CE, é utilizada para colocar a ROM em modo standby quando ela não estiver sendo usada. Isto diminui o fornecimento de corrente para a memória a partir da fonte de alimentação do sistema.
A entrada CS, na Figura 3(a), é ativa em nível BAIXO, e portanto deve estar em nível BAIXO para permitir que os dados da ROM apareçam nas saídas. Observe que não há entrada R/W (leitura/escrita), porque não se pode escrever em uma ROM durante a operação normal.
Operação de Leitura Vamos considerar que uma ROM foi programada com os dados mostrados na tabela da Figura 3(b). As dezesseis palavras de dados são armazenadas em 16 endereços diferentes. Por exemplo, a palavra de dados armazenada na posição 0011 é 10101111. É claro, os dados estão armazenados de modo binário no interior da ROM, mas freqüentemente usaremos a notação hexadecimal para mostrar de modo compacto os dados programados. Isto é feito na Figura 3(c).
Para ler uma palavra de dados armazenados na ROM, necessitamos: (1) fornecer valores apropriados nas entradas de endereço e depois (2) ativar as entradas de controle. Por exemplo, se desejamos ler os dados armazenados na posição 0111 da ROM da Figura 3, devemos aplicar A3A2A1A0 = 0111 nas entradas de endereço e depois colocar CS em BAIXO.
As entradas de endereço serão decodificadas no interior da ROM para selecionar a palavra de dados correta, isto é, 11101101, que irá aparecer nas saídas D7 a D0. Se a entrada CS for mantida em ALTO, as saídas da ROM não estarão habilitadas e ficarão em alta impedância.
2.3.2 TIPOS DE ROM'S ROM Programada por Máscara A ROM programada por máscara tem suas posições escritas (programadas) pelo fabricante cie acordo com as especificações do cliente. Um negativo fotográfico chamado máscara é usado para especificar as conexões elétricas no chip. Uma máscara específica é necessária para cada conjunto de informações diferentes a ser armazenado na ROM. Uma vez que essas máscaras são muito caras, esse tipo de ROM só é economicamente viável se uma grande quantidade de uma mesma ROM é necessária.
Algumas ROMs desse tipo estão disponíveis como dispositivos pré-programaclos com informações ou dados normalmente usados, como por exemplo códigos geradores de caracteres usados em terminais de vídeo. A principal desvantagem desse tipo de ROM é que ela não pode ser reprogramada quando uma mudança de projeto necessitar que os dados armazenados sejam modificados. A ROM teria que ser trocada por uma outra com os novos dados gravados. Vários tipos de ROMs programáveis pelo usuário foram desenvolvidos para superar essa limitação. Entretanto, ROMs programadas por máscara ainda representam a alternativa mais econômica quando uma grande quantidade de ROMs com programação idêntica é necessária.
ROMs programadas por máscara são comumente chamadas simplesmente de ROMs. Entretanto, isso pode trazer alguma confusão, uma vez que o termo ROM na verdade representa uma categoria mais abrangente de dispositivos que durante a sua operação normal podem ser apenas lidos. Usaremos o acrônimo MROM ( mask-programmed ROM) sempre que fizermos referência a ROMs programadas por máscara.
ROMs Programaveis (PROMs – PROGRAMMABLE ROMs)
Uma ROM programável por máscara é muito cara e só seria usada em aplicações que necessitassem de um grande volume, pois o alto custo poderia ser diluído pelas várias unidades. Para aplicações de volume mais baixo, os fabricantes desenvolveram PROMs com conexões a fusível que são programadas pelo usuário, isto é, não são programadas durante o processo de fabricação, mas são programadas pelo usuário, de acordo com suas necessidades. Entretanto, uma vez programada, uma PROM é como uma MROM, e não pode ser apagada e reprogramada. Logo, se um programa em uma PROM tem erros ou deve ser alterado, esta PROM deve ser "jogada fora". Por essa razão, esses dispositivos são também chamados de ROMs programáveis apenas uma vez (OTP — one timeprogrammable).
ROM Programável e Apagável (EPROM - ERASABLE PROGRAMMABLE ROM) Uma EPROM pode ser programada pelo usuário e também pode ser apagada e reprogramada tão freqüentemente quanto desejado. Uma vez programada, a EPROM é uma memória não-volátil, que irá manter indefinidamente os dados armazenados. O processo de programação de uma EPROM envolve a aplicação de níveis de tensão especiais (geralmente na faixa de 10 a 25 V) nas entradas do chip apropriadas, por um determinado intervalo de tempo (geralmente 50 ms para cada posição). O processo de programação geralmente é realizado por um circuito de programação especial que está separado do circuito que será utilizado na EPROM durante sua operação normal. O processo de programação completo pode durar até vários minutos para um chip EPROM.
As células de armazenamento em uma EPROM são transistores MOS cuja porta não possui conexão elétrica (isto é, a porta está em flutuação). Em seu estado normal, cada transistor não está conduzindo e cada célula está armazenando um nível lógico 1. Um transistor pode ser colocado em um estado de condução aplicando-se um pulso cie programação de alta tensão que injeta elétrons com alta energia na região da porta em flutuação. Os elétrons permanecem presos nesta região tão logo o pulso é retirado, porque não existe um caminho de descarga. Isto mantém o transistor em estado de permanente condução mesmo quando a alimentação é removida do dispositivo, e a célula agora está armazenando um nível lógico 0. Durante o processo de programação, os pinos de dados e endereços da EPROM são usados para selecionar quais as células de memória serão programadas com 0’s e quais serão mantidas com 1’s.
Uma vez programada a célula de uma EPROM, ela pode ser apagada sendo exposta à luz ultravioleta (UV) aplicada pela janela existente no encapsulamento do chip. A luz ultravioleta produz uma corrente da porta em flutuação para o substrato de silício, que remove as cargas armazenadas e faz com que o transistor passe para um estado de nâo-condução, restabelecendo o nível lógico 1. Este processo de apagamento geralmente requer de 15 a 20 minutos de exposição à luz ultravioleta. Infelizmente, não existe um modo de apagar apenas algumas células selecionadas; a luz ultravioleta apaga todas as células ao mesmo tempo, de modo que uma EPROM apagada armazena apenas 1s. Uma vez apagada, ela pode ser reprogramada.
As EPROMs estão disponíveis em um amplo espectro de capacidades e tempos de acesso. Dispositivos com capacidade de 512K X 8 e tempos de acesso de 120 ns são comuns. A 2732 é um exemplo de uma pequena EPROM. A 2732 é uma EPROM NMOS de 4K X 8 que opera com uma fonte única de +5 V durante operação normal.
PROM Apagavel eletricamente (Electricalliy Erasable PROM — EEPROM) As desvantagens da EPROM foram superadas pelo desenvolvimento da PROM apagável eletricamente (EEPROM)como um aperfeiçoamento da EPROM. A EEPROM mantém a mesma estrutura de porta em flutuação da EPROM, mas com a adição de uma fina camada de óxido acima do dreno do MOSFET da célula de memória. Essa modificação produz a principal característica da EEPROM, isto é, poder ser apagada eletricamente. Aplicando-se uma tensão alta (21 V) entre a porta e o dreno do MOSFET, uma carga é induzida na porta em flutuação, onde permanecerá mesmo que a alimentação seja retirada; a aplicação reversa da mesma tensão faz com que as cargas que estavam na porta em flutuação sejam removidas e que a célula seja apagada. Uma vez que esse mecanismo de transporte de cargas necessita cie correntes muito baixas, o apagamento e a programação de uma EEPROM podem ser feitos no próprio circuito, sem necessitar de uma fonte de luz ultravioleta e de um programador especial.
CD ROM
Um tipo de armazenamento somente para leitura bastante utilizado em computadores hoje são os CDs (compact disks). A tecnologia de fabricação e os circuitos necessários para recuperar a informação são os mesmos daqueles utilizados em sistemas de áudio. Apenas o formato dos dados é diferente. Os CDs são fabricados com uma superfície altamente reflexiva. Para armazenar dados nesses discos, um feixe laser bastante intenso é focalizado sobre um ponto muito pequeno no disco. Esse feixe faz uma depressão que é capaz cie provocar a clifraçâo da luz nesse ponto da superfície. Os dados digitais (1s e Os) são armazenados no disco, um bit por vez, fazendo ou não essa depressão no material reflexivo. A informação digital no disco está organizada em uma espiral contínua de pontos de dados. A precisão do feixe laser permite que grandes quantidades cie dados (acima de 550 Mbytes) sejam armazenados em um pequeno disco de 120 mm.
Para que os dados possam ser lidos, um feixe laser bem menos potente é focalizado na superfície do disco. Em qualquer ponto, a luz refletida é sentida como um 1 ou um 0. Esse arranjo ótico é montado em um mecanismo de transporte que se move para a frente e para trás ao longo do raio do disco, seguindo a espiral de dados à medida que o disco roda. Os dados recebidos do sistema ótico vêm em uma linha serial de dados, um bit por vez, A rotação do disco é controlada para manter uma taxa constante de bits. Se esse disco está sendo usado para reprodução de áudio, essa linha de dados é convertida em formato analógico. Se esse disco está sendo usado como uma memória somente de leitura, esses dados são codificados em bytes paralelos que o computador pode usar.
2.4 MEMÓRIA FLASH
As EPROMs são não-voláteis, oferecem tempos de acesso reduzidos (tipicamente 120 ns) e têm alta densidade e baixo custo por bit. Entretanto, elas precisam ser retiradas do circuito/sistema para serem apagadas e reprogramadas. As EEPROMs são não-voláteis, oferecem tempos de acesso reduzidos e permitem que o apagamento e a reprogramação de bytes individuais sejam feitos no circuito/sistema. Entretanto, apresentam como desvantagens a baixa densidade e o alto custo quando comparadas às EPROMs.
O desafio para os engenheiros de semicondutores era fabricar uma memória não-volátil, apagável eletricamente como a EEPROM, mas com densidades e custos semelhantes aos da EPROM, ainda mantendo a alta velocidade do acesso de ambas. A resposta a esse desafio foi a memoria flash.
Estruturalmente, uma célula de memória flash é semelhante à célula com um único transistor da EPROM (não é semelhante à célula mais complexa da EEPROM com dois transistores), sendo apenas ligeiramente maior. Ela possui uma camada de óxido mais fina na porta que permite que a célula possa ser apagada eletricamente, permitindo, ainda, que se obtenham densidades bem maiores do que as observadas nas EEPROMs. O custo de uma memória flash é consideravelmente menor do que uma EEPROM, embora ainda não esteja tão próximo do custo da EPROM. Essa diferença de custo deverá diminuir à medida que a tecnologia flash seja aperfeiçoada. A Figura 4 mostra as vantagens e desvantagens dos vários tipos de memórias semicondutoras não-voláteis. À medida que aumenta a flexibilidade para apagar e programar, também aumentam a complexidade e o custo do dispositivo. A MROM e a PROM são os dispositivos mais simples e baratos, mas não podem ser apagados e reprogramados. A EEPROM é o dispositivo mais complexo e caro porque pode ser apagado e programado "byte a byte".
As memórias flash são assim chamadas porque possuem tempos curtos de apagamento e escrita. A maioria dos chips faz apagamento em bloco, nos quais todas as células no chip são apagadas simultaneamente. Esse processo de apagamento em bloco dura, tipicamente, centenas de milissegundos, muito menos tempo do que os 20 minutos necessários para as EPROMs. Algumas memórias flash mais novas oferecem um modo de apagamento por setor, em que setores específicos da matriz de memória (por exemplo, grupos de 512 bytes) podem ser apagados de uma só vez. Isso evita que seja necessário apagar e reprogramar todas as células quando apenas uma parte da memória tiver que ser atualizada.
2.5 MEMÓRIA RAM
O termo RAM significa memória de acesso aleatório (random-access memory), querendo dizer que qualquer posição de memória possui a mesma facilidade de acesso que qualquer outra. Muitos tipos de memória podem ser classificados como tendo acesso aleatório; entretanto, quando o termo RAM é usado para memórias semicondutoras, estamos nos referindo à memória de escrita e leitura em oposição a ROM. Uma vez que é uma prática comum usar o termo RAM para representar uma memória de escrita e leitura, assim sera feito nas explicações a seguir.
A RAM é usada em computadores para armazenamento temporário de programas e dados. Os conteúdos de muitas posições de uma RAM podem ser lidos e escritos à medida que um computador executa um programa. Isso torna necessário que os ciclos de escrita e leitura para RAM sejam mais rápidos para que o desempenho do computador não seja comprometido.
Uma das principais desvantagens de uma RAM é o fato de a mesma ser volátil, isto é, ela vai perder a informação armazenada se a alimentação for desligada ou interrompida. Entretanto, algumas RAMs CMOS consomem tão pouca potência quando estão em modo standby (operações cie leitura e escrita não são realizadas) que elas podem ser alimentadas por baterias sempre que a alimentação principal for interrompida. Obviamente, a maior vantagem de uma RAM é o fato de ela poder ser escrita e lida rapidamente com a mesma facilidade.
2.5.1 Arquitetura da RAM
Conforme aconteceu com a ROM, é bastante útil pensar numa RAM como um determinado número de registradores onde cacla um armazena uma única palavra de dados e possui um único endereço. As RAMs tipicamente são fabricadas com capacidades de 1K, 4K, 8K, l6K, 64K, 128K, 256K e 1.024K, com tamanhos de palavras de 1, 4 ou 8 bits. Como veremos mais tarde, o número cie palavras e o tamanho das mesmas podem ser expandidos combinanclo-se chips de memória.
A Figura 5 mostra a arquitetura simplificada de uma RAM que armazena 64 palavras de quatro bits cada. isto é, uma memória de 64 X 4. Estas palavras têm endereços que vão de 0 a 6310.Para selecionar uma das 64 posições para escrita ou leitura, um endereço binário é fornecido ao circuito decodificador. Uma vez que 64 =26, o decodificador necessita de seis entradas. Cada endereço ativa uma saída em particular do decodificador, que, por sua vez, habilita o registrador correspondente. Por exemplo, suponha que foi fornecido o endereço:
A5A4A3A2A1A0 = 111110
Uma vez que 0110102, = 62, a saída 62 do decodificador irá para ALTO, selecionando o registrador 62 para escrita ou leitura.
Figura 5 - Organização interna de uma RAM de 64 x 4
2.5.2 Operação de leitura
O endereço seleciona o registrador no chip de memória para escrita ou leitura. Para que seja possível ler o conteúdo do registrador escolhido, o sinal de entrada de LEITURA/ESCRITA (READ/WRITE — R/W') deve estar em 1. Além disso, a entrada de seleção do chip (CHIP SELECT — (CS)' ) deve estar ativa, nesse caso em nível lógico 0. A combinação de R/W’ = 1 e (CS)’ = 0 habilita os buffers de saída de modo que o conteúdo do registrador aparece nas quatro saídas de dados. A entrada R/W’ = 1 também inibe os buffers de entrada, fazendo com que as entradas de dados não afetem a memória durante a operação de leitura.
2.5.3 Operação de Escrita Para escrever uma palavra de quatro bits no registrador selecionado, é necessário que R/W’= 0 e (CS)’= 0. Essa combinação habilita os buffers de entrada para que a palavra de quatro bits fornecida às entradas de dados seja carregada no registrador. A entrada R/W’ em 0 também inibe os buffers de saída, que são do tipo tristate, fazendo com que as saídas de dados fiquem em alta impedância durante a operação de escrita. Na operação de escrita, obviamente, o conteúdo que estava anteriormente armazenado é perdido.
2.5.4 Seleção do CHIP A maioria dos chips de memória tem uma ou mais entradas CS que são usadas para habilitar ou não o chip. Quando o chip não está habilitado, todas as entradas e saídas de dados estão desabilitadas (alta impedância), de modo que nenhuma operação de leitura ou de escrita pode acontecer.
Nesse estado, o conteúdo da memória não é afetado. A razão para a existência de mais de uma entrada de seleção é utilizada quando são combinados chips de memória para obtermos memórias maiores. Observe que muitos fabricantes chamam estas entradas de HABILITAÇÃO DO CHIP (CHIP ENABLE — CE). Quando as entradas CS ou CE estão no seu estado ativo, diz-se que o chip de memória está selecionado; caso contrário, diz-se que ele não está selecionado.
Muitos CIs de memória são projetados para consumir uma potência muito menor quando eles não estão selecionados. Em grandes sistemas de memória, para uma dada operação de memória, um ou mais chips são selecionados, enquanto outros não são.
2.5.5 RAM Estática (SRAM) A operação da RAM que discutimos até agora se aplica a uma RAM estática (static RAM — SRAM), isto é, aquela que pode armazenar os dados enquanto for mantida a alimentação do chip. Células de uma memória estática são essencialmente flip-flops que permanecem em um determinado estado (armazenando um bit) indefinidamente, desde que a alimentação não seja interrompida.
2.5.6 RAM Dinâmica (DRAM) Ao contrário das RAMs estáticas, que armazenam informações em flip-flops, as RAMs dinâmicas armazenam 1s e Os como cargas em um pequeno capacitor MOS. Como existe uma tendência para a fuga de cargas após um período de tempo, as RAMs dinâmicas necessitam de uma recarga periódica de suas células de memória. Isto é chamado de refresh da memória dinâmica. Nas DRAMs mais modernas, cada célula de memória deve ser recarregada, geralmente, a cada 2, 4, ou 8 ms, ou os dados serão perdidos.
Podemos visualizar a memória da Figura 1(a) como um arranjo de 32 registradores, no qual cada registrador guarda uma palavra de quatro bits, conforme mostra a Figura 1(b). Cada posição é mostrada contendo quatro células de memória, que guardam ls ou Os, que formam a palavra de dados armazenada nesta posição. Por exemplo, a palavra de dados 0110 está armazenada no endereço 00000, a palavra de dados 1001 está armazenada no endereço 00001, e assim por diante.
A Unidade Lógica e Aritmética (ULA) é um circuito combinatório responsável pela execução de somas, subtrações e funções lógicas, em um sistema digital. Na figura 1.1 é mostrado um esquema simplificado de uma ULA.
Figura 1.1 – Esquema de uma ULA.
Uma ULA pode ser construída como uma cascata de vários estágios idênticos.Não existem regras de como projetar cada estágio da ULA.Em geral, a aplicação determina o circuito de cada estágio da ULA. Uma vez estabelecido o porte do sistema, existe também o compromisso entre velocidade e preço. Por exemplo, as calculadoras eletrônicas exigem ULAs que permitem operações complexas, porém com velocidade de operação baixa, reduzindo-se o custo; já os computadores de grande porte exigem velocidade de operação elevada, aumentando o custo da ULA. Atualmente têm-se várias alternativas de circuitos integrados que incluem uma ULA. Entre elas estão o 74181, 74381 e 74LS881.Circuito integrado
Existem diversos circuitos integrados disponíveis comercialmente que são classificados e vendidos como unidades lógicas-aritméticas (ULAs), mesmo que não apresentem a capacidade lógica e aritmética de uma ULA de computador.Esses CIs ULAs são capazes de realizar várias operações logicas e aritméticas diferentes com dados binários de entrada. A operação específica que um CI ULA executa é determinada pelo código binário específico que é aplicado nas entradas dos bits seletores de função.E cada CI ULA possui um conjunto específico de funções que pode executar, diferente das demais ULAs.
Circuito Integrado 74181–uma ULA de 4 bits
O circuito integrado MSI 74181 é uma ULA de 4bits que tem possibilidade de executar 16 operações aritméticas binárias e 16 operações lógicas.
As operações de subtração são executadas em complemento de dois (C2). Por exemplo, (-1) é representado por (1111). As operações lógicas são executadas bit a bit. Por exemplo, se a operação AND é aplicada às entradas A = 1011 e B = 0110, resulta F = 0010.
A saída Cn+4 representa o sinal de vai-um do último bit da palavra. Ela pode ser usada para propagar o vai-um para o próximo estágio quando não há preocupação com a velocidade do circuito. O sinal Cn+4 também pode ser usado em conjunto com a saída A = B para indicar as condições A>B e A<B.
2. MEMÓRIAS
A principal vantagem dos sistemas digitais sobre os analógicos é a capacidade de armazenar, facilmente, grandes quantidades de informação e dados por períodos longos ou curtos. Esta capacidade de memória é o que torna os sistemas digitais tão versáteis e adaptáveis às diversas situações. Por exemplo, em um computador digital, a memória principal armazena instruções que informam ao computador o que fazer sob qualquercircunstância possível, de modo que o computador realizará sua tarefa com um mínimo de intervenção humana.
2.1 CLASSIFICAÇÃO DAS MEMÓRIAS
2.1.1 – ACESSO
As memórias acessam informações em lugares denominados localidades de memória. Cada uma das localidades de memória possui um conjunto de bits que nos permite o seu acesso. A este conjunto de bits damos o nome de endereço. Esse conceito é de fácil compreensão, pois como próprio nome diz, o conjunto de bits representa o endereço da localidade onde está armazenada uma informação.
O tempo de acesso de uma memória é o tempo necessário desde a entrada de um endereço até o momento em que a informação aparece na saída. Para as memórias de escrita/leitura é também o tempo necessário para a informação ser gravada.
As localidades de memória podem ser acessadas de duas maneiras, que estão descritas nos itens a seguir.
1.1 Acesso sequencial
As memórias que utilizam o acesso seqüencial, dado o endereço de certa localidade, permitem que se chegue até esta, passando por todas as localidades intermediárias. As memórias mais comuns com este tipo de acesso são as que operam com fitas magnéticas, sendo utilizadas como memória de massa em computadores.
Uma característica importante deste tipo de acesso é que o tempo de acesso depende do lugar onde a informação está armazenada.
1.2 Acesso aleatório
As memórias que utilizam o acesso aleatório, dado o endereço de certa localidade, permitem que se chegue até este diretamente, sem necessitar passar pelas localidades intermediárias. As principais memórias com este tipo de acesso são também conhecidas como RAM (Random-Accsess Memory). São largamente utilizadas em sistemas digitais programáveis. Possuem grande vantagem de ter um tempo de acesso pequeno e igual para qualquer uma das localidades de memória.
2.1.2 – VOLATILIDADE
Quanto a volatilidade, as memórias podem ser voláteis ou não-voláteis.
2.1 – Memórias voláteis
São as memórias que, ao ser cortada a alimentação, perdem as informações armazenadas. São memórias feitas, geralmente, a partir de semicondutores e na maioria das vezes, possuem como elemento de memória o flip-flop. Um exemplo é a memória RAM.
2.2 – Memórias não-vólateis
São as memórias que mesmo sem alimentação, continuam com as informações armazenadas. Dentre essas se destacam as memórias magnéticas e as eletrônicas: ROM, PROM, e EPROM.
2.1.3 – TROCA DE DADOS
Quanto à troca de dados com outros componentes do sistema, as memórias podem ser de escrita/leitura ou memórias apenas de leitura.
3.1 – Escrita/leitura
As memórias de escrita/leitura são aquelas que permitem acesso a uma localidade qualquer para armazenar a informação desejada, além de permitirem o acesso também para a leitura do dado. As memórias RAM são exemplo.
3.2 – Apenas Leitura
As memórias apenas de leitura, são aquelas em que a informação é fixa, só permitindo assim a leitura das mesmas. São também conhecidas como ROM (Read-Only Memory).
2.1.4 TIPOS DE ARMAZENAMENTO
Quanto ao tipo de armazenamento, as memórias classificam-se em estáticas e dinâmicas.
4.1 Memórias de armazenamento estático
As memórias de armazenamento estático são aquelas em que uma vez inserido o dado numa dada localidade, este lá permanece.
4.2 Memórias de armazenamento dinâmico
As memórias de armazenamento dinâmico são aquelas em que necessitamos inserir a informação de tempos em tempos, pois de acordo com as características de seu elementos internos, as informações são perdidas após um determinado tempo.
2.1 PRINCÍPIO DE OPERAÇÃO DA MEMÓRIA
Embora cada tipo de memória seja diferente na sua operação interna, certos princípios básicos de operação são iguais para todos os sistemas de memória. Uma compreensão dessas idéias básicas ajudará nosso estudo sobre os dispositivos de memória.
Todos os sistemas de memória necessitam de diversos tipos diferentes de linhas de entrada e de saída para realizar as seguintes funções:
1. Selecionar o endereço na memória que está sendo acessado para uma operação de leitura ou escrita.
2. Selecionar uma operação de leitura ou uma de escrita a ser realizada.
3. Fornecer os dados de entrada a serem armazenados na memória durante uma operação de escrita.
4. Manter os dados de saída vindos da memória durante uma operação de leitura.
5. Habilitar (ou desabilitar) a memória de modo que ela responda (ou não) às entradas de endereçamento e ao comando de leitura/escrita.
A Figura 1(a) ilustra essas funções básicas num diagrama simplificado de uma memória de 32 X 4 que armazena trinta e duas palavras de quatro bits. Tendo em vista que o tamanho da palavra é de quatro bits, existem quatro linhas de entrada de dados, I0 a I1, e quatro linhas de saída de dados, O0 a 03. Durante uma operação de escrita, o dado a ser armazenado na memória deve ser aplicado nas linhas de entrada de dados. Durante uma operação de leitura, a palavra que está sendo lida da memória aparece nas linhas de saída de dados.
2.2.1 ENTRADAS DE ENDEREÇO
Como a memória ilustrada no diagrama da figura 1(a) armazena 32 palavras, ela tem 32 posições de armazenamento diferentes, e portanto possui 32 endereços binários diferentes, variando de 00000 até 11111 (0 a 31 em decimal). Logo, existem cinco entradas de endereço, A0 até A4. Para acessar uma das posições de memória para uma operação de leitura ou escrita, o código de endereçamento de cinco bits para essa posição é aplicado nas entradas de endereço. De um modo geral, N entradas de endereço são necessárias para uma memória que possui uma capacidade de 2^n palavras.
Podemos visualizar a memória da Figura 1(a) como um arranjo de 32 registradores, no qual cada registrador guarda uma palavra de quatro bits, conforme mostra a Figura 1(b). Cada posição é mostrada contendo quatro células de memória, que guardam ls ou Os, que formam a palavra de dados armazenada nesta posição. Por exemplo, a palavra de dados 0110 está armazenada no endereço 00000, a palavra de dados 1001 está armaz
enada no endereço 00001, e assim por diante.
2.2.2 A ENTRADA R/W'
Esta entrada controla qual operação deve ser realizada na memória: leitura (R — Read) ou Escrita (W — Write). A entrada é identificada por RW', e, como não existe a barra sobre R, isto indica que a operação de leitura ocorre quando R/W' = 1. A barra sobre W indica que a operação de escrita acontece quando R/W' = 0. Outros identificadores são usados frequentemente para essa entrada. Dois dos mais comuns são W' (escrita) e (WE)' (write enable— habilitação de escrita). Novamente, a barra indica que a operação de escrita ocorre quando a entrada está em BAIXO. Fica subentendido que a operação de
leitura ocorre para nível ALTO.
Uma ilustração simplificada das operações de leitura e escrita é mostrada na Figura 2. A parte (a) mostra o dado 0100 sendo escrito no registrador de memória da posição de endereço 00011. Este dado deve ser aplicado nas linhas de entrada de dados, e substitui o dado previamente armazenado no endereço 00011. A parte (b) mostra a palavra 1101 sendo lida do endereço 11110. Esta palavra deve aparecer nas linhas de saída de dados da memória. Após a operação de leitura, a palavra 1101 ainda está armazenada no endereço 11110. Isto é, a operação de leitura não altera o dado armazenado.
2.2.3 HABILITAÇÃO DA MEMÓRIA
Muitos sistemas de memória têm algum modo de desabilitar completamente uma parte ou toda a memória, de modo que ela não responde às outras entradas. Isto é representado na Figura 1(a) pela entrada ME, embora ela possa ter nomes diferentes nos vários sistemas de memória, tais como chip enable (CE) ou chip select (CS). Aqui ela é mostrada como uma entrada ativa em ALTO que habilita a memória a operar normalmente quando é mantida em ALTO. Um nível BAIXO nesta entrada desabilita a memória, de modo que ela não responderá às entradas de endereço e de R/W’. Esse tipo de entrada é útil quando vários módulos de memória são combinados para formar uma memória maior.
2.3 MEMÓRIAS SOMENTE DE LEITURA
A memória somente de leitura é um tipo de memória semicondutora que é projetada para armazenar dados imutáveis ou aqueles que não mudam com freqüência. Durante a operação normal, novos dados não podem ser escritos na ROM; somente os dados já armazenados podem ser lidos. Para alguns tipos de ROMs, os dados que estão armazenados devem ser colocados na memória durante o processo de fabricação; para outras ROMs, os dados podem ser colocados eletricamente. O processo de colocar os dados é chamado de programação ou "queima "da ROM. Algumas ROMs não podem ter seus dados modificados uma vez programados. Outras podem ser apagadas e reprogramadas tantas vezes quanto necessário.
2.3.1 MEMÓRIA ROM
As ROMs são usadas para armazenar dados e informações que não devem ser alterados durante a operação normal de um sistema. A principal aplicação das ROMs é no armazenamento de programas em microcomputadores. Uma vez que todas as ROMs são não-voláteis, estes programas não são perdidos quando a fonte de alimentação é desligada. Quando o microcomputador é ligado, ele pode imediatamente começar a execução do programa armazenado na ROM. ROMs também são usadas em equipamentos controlados por microprocessador, tais como: caixas registradoras eletrônicas, aparelhos domésticos e sistemas de segurança.
Diagrama de blocos de uma ROM
Um diagrama de blocos típico para uma ROM pode ser visto na Figura 3(a). Ele possui três grupos de sinais: entradas de endereço, entradas de controle e entradas de dados. Com base no que foi dito anteriormente, podemos dizer que esta ROM está armazenando 16 palavras, uma vez que 24 = 16 endereços possíveis, e que cada palavra contém 8 bits, pois existem oito saídas de dados. Portanto, esta é uma ROM de 16 X 8. Uma outra maneira de descrever a capacidade da ROM é dizer que ela armazena 16 bytes de dados.
As saídas de dados mais comuns da maioria dos CIs de ROMs são do tipo tristate, para permitir a conexão de vários chips de ROMs num mesmo barramento de dados para expansão de memória. Os números de saídas de dados maiscomuns são 4, 8 e 16 bits, sendo que palavras de 8 bits são as mais comuns.
A entrada de controle CS (chip select) é a entrada de seleção do chip. Ela é uma entrada que habilita ou não as saídas da ROM. Alguns fabricantes usam outros nomes para esta entrada de controle, tais como: CE (chip enable — habilitação do chip) ou OE (output enable — habilitação da saída). Muitas ROMs têm duas ou mais entradas de controle que devem estar ativas para que as saídas de dados sejam habilitadas e o conteúdo do endereço selecionado possa ser lido. Em alguns CIs de ROMs, uma das entradas de controle, geralmente CE, é utilizada para colocar a ROM em modo standby quando ela não estiver sendo usada. Isto diminui o fornecimento de corrente para a memória a partir da fonte de alimentação do sistema.
A entrada CS, na Figura 3(a), é ativa em nível BAIXO, e portanto deve estar em nível BAIXO para permitir que os dados da ROM apareçam nas saídas. Observe que não há entrada R/W (leitura/escrita), porque não se pode escrever em uma ROM durante a operação normal.

Operação de LeituraVamos considerar que uma ROM foi programada com os dados mostrados na tabela da Figura 3(b). As dezesseis palavras de dados são armazenadas em 16 endereços diferentes. Por exemplo, a palavra de dados armazenada na posição 0011 é 10101111. É claro, os dados estão armazenados de modo binário no interior da ROM, mas freqüentemente usaremos a notação hexadecimal para mostrar de modo compacto os dados programados. Isto é feito na Figura 3(c).
Para ler uma palavra de dados armazenados na ROM, necessitamos: (1) fornecer valores apropriados nas entradas de endereço e depois (2) ativar as entradas de controle. Por exemplo, se desejamos ler os dados armazenados na posição 0111 da ROM da Figura 3, devemos aplicar A3A2A1A0 = 0111 nas entradas de endereço e depois colocar CS em BAIXO.
As entradas de endereço serão decodificadas no interior da ROM para selecionar a palavra de dados correta, isto é, 11101101, que irá aparecer nas saídas D7 a D0. Se a entrada CS for mantida em ALTO, as saídas da ROM não estarão habilitadas e ficarão em alta impedância.
2.3.2 TIPOS DE ROM'S
ROM Programada por Máscara
A ROM programada por máscara tem suas posições escritas (programadas) pelo fabricante cie acordo com as especificações do cliente. Um negativo fotográfico chamado máscara é usado para especificar as conexões elétricas no chip. Uma máscara específica é necessária para cada conjunto de informações diferentes a ser armazenado na ROM. Uma vez que essas máscaras são muito caras, esse tipo de ROM só é economicamente viável se uma grande quantidade de uma mesma ROM é necessária.
Algumas ROMs desse tipo estão disponíveis como dispositivos pré-programaclos com informações ou dados normalmente usados, como por exemplo códigos geradores de caracteres usados em terminais de vídeo. A principal desvantagem desse tipo de ROM é que ela não pode ser reprogramada quando uma mudança de projeto necessitar que os dados armazenados sejam modificados. A ROM teria que ser trocada por uma outra com os novos dados gravados. Vários tipos de ROMs programáveis pelo usuário foram desenvolvidos para superar essa limitação. Entretanto, ROMs programadas por máscara ainda representam a alternativa mais econômica quando uma grande quantidade de ROMs com programação idêntica é necessária.
ROMs programadas por máscara são comumente chamadas simplesmente de ROMs. Entretanto, isso pode trazer alguma confusão, uma vez que o termo ROM na verdade representa uma categoria mais abrangente de dispositivos que durante a sua operação normal podem ser apenas lidos. Usaremos o acrônimo MROM ( mask-programmed ROM) sempre que fizermos referência a ROMs programadas por máscara.
ROMs Programaveis (PROMs – PROGRAMMABLE ROMs)
Uma ROM programável por máscara é muito cara e só seria usada em aplicações que necessitassem de um grande volume, pois o alto custo poderia ser diluído pelas várias unidades. Para aplicações de volume mais baixo, os fabricantes desenvolveram PROMs com conexões a fusível que são programadas pelo usuário, isto é, não são programadas durante o processo de fabricação, mas são programadas pelo usuário, de acordo com suas necessidades. Entretanto, uma vez programada, uma PROM é como uma MROM, e não pode ser apagada e reprogramada. Logo, se um programa em uma PROM tem erros ou deve ser alterado, esta PROM deve ser "jogada fora". Por essa razão, esses dispositivos são também chamados de ROMs programáveis apenas uma vez (OTP — one timeprogrammable).
ROM Programável e Apagável (EPROM - ERASABLE PROGRAMMABLE ROM)
Uma EPROM pode ser programada pelo usuário e também pode ser apagada e reprogramada tão freqüentemente quanto desejado. Uma vez programada, a EPROM é uma memória não-volátil, que irá manter indefinidamente os dados armazenados. O processo de programação de uma EPROM envolve a aplicação de níveis de tensão especiais (geralmente na faixa de 10 a 25 V) nas entradas do chip apropriadas, por um determinado intervalo de tempo (geralmente 50 ms para cada posição). O processo de programação geralmente é realizado por um circuito de programação especial que está separado do circuito que será utilizado na EPROM durante sua operação normal. O processo de programação completo pode durar até vários minutos para um chip EPROM.
As células de armazenamento em uma EPROM são transistores MOS cuja porta não possui conexão elétrica (isto é, a porta está em flutuação). Em seu estado normal, cada transistor não está conduzindo e cada célula está armazenando um nível lógico 1. Um transistor pode ser colocado em um estado de condução aplicando-se um pulso cie programação de alta tensão que injeta elétrons com alta energia na região da porta em flutuação. Os elétrons permanecem presos nesta região tão logo o pulso é retirado, porque não existe um caminho de descarga. Isto mantém o transistor em estado de permanente condução mesmo quando a alimentação é removida do dispositivo, e a célula agora está armazenando um nível lógico 0. Durante o processo de programação, os pinos de dados e endereços da EPROM são usados para selecionar quais as células de memória serão programadas com 0’s e quais serão mantidas com 1’s.
Uma vez programada a célula de uma EPROM, ela pode ser apagada sendo exposta à luz ultravioleta (UV) aplicada pela janela existente no encapsulamento do chip. A luz ultravioleta produz uma corrente da porta em flutuação para o substrato de silício, que remove as cargas armazenadas e faz com que o transistor passe para um estado de nâo-condução, restabelecendo o nível lógico 1. Este processo de apagamento geralmente requer de 15 a 20 minutos de exposição à luz ultravioleta. Infelizmente, não existe um modo de apagar apenas algumas células selecionadas; a luz ultravioleta apaga todas as células ao mesmo tempo, de modo que uma EPROM apagada armazena apenas 1s. Uma vez apagada, ela pode ser reprogramada.
As EPROMs estão disponíveis em um amplo espectro de capacidades e tempos de acesso. Dispositivos com capacidade de 512K X 8 e tempos de acesso de 120 ns são comuns. A 2732 é um exemplo de uma pequena EPROM. A 2732 é uma EPROM NMOS de 4K X 8 que opera com uma fonte única de +5 V durante operação normal.
PROM Apagavel eletricamente (Electricalliy Erasable PROM — EEPROM)
As desvantagens da EPROM foram superadas pelo desenvolvimento da PROM apagável eletricamente (EEPROM)como um aperfeiçoamento da EPROM. A EEPROM mantém a mesma estrutura de porta em flutuação da EPROM, mas com a adição de uma fina camada de óxido acima do dreno do MOSFET da célula de memória. Essa modificação produz a principal característica da EEPROM, isto é, poder ser apagada eletricamente. Aplicando-se uma tensão alta (21 V) entre a porta e o dreno do MOSFET, uma carga é induzida na porta em flutuação, onde permanecerá mesmo que a alimentação seja retirada; a aplicação reversa da mesma tensão faz com que as cargas que estavam na porta em flutuação sejam removidas e que a célula seja apagada. Uma vez que esse mecanismo de transporte de cargas necessita cie correntes muito baixas, o apagamento e a programação de uma EEPROM podem ser feitos no próprio circuito, sem necessitar de uma fonte de luz ultravioleta e de um programador especial.
CD ROM
Um tipo de armazenamento somente para leitura bastante utilizado em computadores hoje são os CDs (compact disks). A tecnologia de fabricação e os circuitos necessários para recuperar a informação são os mesmos daqueles utilizados em sistemas de áudio. Apenas o formato dos dados é diferente. Os CDs são fabricados com uma superfície altamente reflexiva. Para armazenar dados nesses discos, um feixe laser bastante intenso é focalizado sobre um ponto muito pequeno no disco. Esse feixe faz uma depressão que é capaz cie provocar a clifraçâo da luz nesse ponto da superfície. Os dados digitais (1s e Os) são armazenados no disco, um bit por vez, fazendo ou não essa depressão no material reflexivo. A informação digital no disco está organizada em uma espiral contínua de pontos de dados. A precisão do feixe laser permite que grandes quantidades cie dados (acima de 550 Mbytes) sejam armazenados em um pequeno disco de 120 mm.
Para que os dados possam ser lidos, um feixe laser bem menos potente é focalizado na superfície do disco. Em qualquer ponto, a luz refletida é sentida como um 1 ou um 0. Esse arranjo ótico é montado em um mecanismo de transporte que se move para a frente e para trás ao longo do raio do disco, seguindo a espiral de dados à medida que o disco roda. Os dados recebidos do sistema ótico vêm em uma linha serial de dados, um bit por vez, A rotação do disco é controlada para manter uma taxa constante de bits. Se esse disco está sendo usado para reprodução de áudio, essa linha de dados é convertida em formato analógico. Se esse disco está sendo usado como uma memória somente de leitura, esses dados são codificados em bytes paralelos que o computador pode usar.
2.4 MEMÓRIA FLASH
As EPROMs são não-voláteis, oferecem tempos de acesso reduzidos (tipicamente 120 ns) e têm alta densidade e baixo custo por bit. Entretanto, elas precisam ser retiradas do circuito/sistema para serem apagadas e reprogramadas. As EEPROMs são não-voláteis, oferecem tempos de acesso reduzidos e permitem que o apagamento e a reprogramação de bytes individuais sejam feitos no circuito/sistema. Entretanto, apresentam como desvantagens a baixa densidade e o alto custo quando comparadas às EPROMs.
O desafio para os engenheiros de semicondutores era fabricar uma memória não-volátil, apagável eletricamente como a EEPROM, mas com densidades e custos semelhantes aos da EPROM, ainda mantendo a alta velocidade do acesso de ambas. A resposta a esse desafio foi a memoria flash.
Estruturalmente, uma célula de memória flash é semelhante à célula com um único transistor da EPROM (não é semelhante à célula mais complexa da EEPROM com dois transistores), sendo apenas ligeiramente maior. Ela possui uma camada de óxido mais fina na porta que permite que a célula possa ser apagada eletricamente, permitindo, ainda, que se obtenham densidades bem maiores do que as observadas nas EEPROMs. O custo de uma memória flash é consideravelmente menor do que uma EEPROM, embora ainda não esteja tão próximo do custo da EPROM. Essa diferença de custo deverá diminuir à medida que a tecnologia flash seja aperfeiçoada. A Figura 4 mostra as vantagens e desvantagens dos vários tipos de memórias semicondutoras não-voláteis. À medida que aumenta a flexibilidade para apagar e programar, também aumentam a complexidade e o custo do dispositivo. A MROM e a PROM são os dispositivos mais simples e baratos, mas não podem ser apagados e reprogramados. A EEPROM é o dispositivo mais complexo e caro porque pode ser apagado e programado "byte a byte".
As memórias flash são assim chamadas porque possuem tempos curtos de apagamento e escrita. A maioria dos chips faz apagamento em bloco, nos quais todas as células no chip são apagadas simultaneamente. Esse processo de apagamento em bloco dura, tipicamente, centenas de milissegundos, muito menos tempo do que os 20 minutos necessários para as EPROMs. Algumas memórias flash mais novas oferecem um modo de apagamento por setor, em que setores específicos da matriz de memória (por exemplo, grupos de 512 bytes) podem ser apagados de uma só vez. Isso evita que seja necessário apagar e reprogramar todas as células quando apenas uma parte da memória tiver que ser atualizada.
2.5 MEMÓRIA RAM
O termo RAM significa memória de acesso aleatório (random-access memory), querendo dizer que qualquer posição de memória possui a mesma facilidade de acesso que qualquer outra. Muitos tipos de memória podem ser classificados como tendo acesso aleatório; entretanto, quando o termo RAM é usado para memórias semicondutoras, estamos nos referindo à memória de escrita e leitura em oposição a ROM. Uma vez que é uma prática comum usar o termo RAM para representar uma memória de escrita e leitura, assim sera feito nas explicações a seguir.
A RAM é usada em computadores para armazenamento temporário de programas e dados. Os conteúdos de muitas posições de uma RAM podem ser lidos e escritos à medida que um computador executa um programa. Isso torna necessário que os ciclos de escrita e leitura para RAM sejam mais rápidos para que o desempenho do computador não seja comprometido.
Uma das principais desvantagens de uma RAM é o fato de a mesma ser volátil, isto é, ela vai perder a informação armazenada se a alimentação for desligada ou interrompida. Entretanto, algumas RAMs CMOS consomem tão pouca potência quando estão em modo standby (operações cie leitura e escrita não são realizadas) que elas podem ser alimentadas por baterias sempre que a alimentação principal for interrompida. Obviamente, a maior vantagem de uma RAM é o fato de ela poder ser escrita e lida rapidamente com a mesma facilidade.
2.5.1 Arquitetura da RAM
Conforme aconteceu com a ROM, é bastante útil pensar numa RAM como um determinado número de registradores onde cacla um armazena uma única palavra de dados e possui um único endereço. As RAMs tipicamente são fabricadas com capacidades de 1K, 4K, 8K, l6K, 64K, 128K, 256K e 1.024K, com tamanhos de palavras de 1, 4 ou 8 bits. Como veremos mais tarde, o número cie palavras e o tamanho das mesmas podem ser expandidos combinanclo-se chips de memória.
A Figura 5 mostra a arquitetura simplificada de uma RAM que armazena 64 palavras de quatro bits cada. isto é, uma memória de 64 X 4. Estas palavras têm endereços que vão de 0 a 6310.Para selecionar uma das 64 posições para escrita ou leitura, um endereço binário é fornecido ao circuito decodificador. Uma vez que 64 =26, o decodificador necessita de seis entradas. Cada endereço ativa uma saída em particular do decodificador, que, por sua vez, habilita o registrador correspondente. Por exemplo, suponha que foi fornecido o endereço:
A5A4A3A2A1A0 = 111110
Uma vez que 0110102, = 62, a saída 62 do decodificador irá para ALTO, selecionando o registrador 62 para escrita ou leitura.
2.5.2 Operação de leitura
O endereço seleciona o registrador no chip de memória para escrita ou leitura. Para que seja possível ler o conteúdo do registrador escolhido, o sinal de entrada de LEITURA/ESCRITA (READ/WRITE — R/W') deve estar em 1. Além disso, a entrada de seleção do chip (CHIP SELECT — (CS)' ) deve estar ativa, nesse caso em nível lógico 0. A combinação de R/W’ = 1 e (CS)’ = 0 habilita os buffers de saída de modo que o conteúdo do registrador aparece nas quatro saídas de dados. A entrada R/W’ = 1 também inibe os buffers de entrada, fazendo com que as entradas de dados não afetem a memória durante a operação de leitura.
2.5.3 Operação de Escrita
Para escrever uma palavra de quatro bits no registrador selecionado, é necessário que R/W’= 0 e (CS)’= 0. Essa combinação habilita os buffers de entrada para que a palavra de quatro bits fornecida às entradas de dados seja carregada no registrador. A entrada R/W’ em 0 também inibe os buffers de saída, que são do tipo tristate, fazendo com que as saídas de dados fiquem em alta impedância durante a operação de escrita. Na operação de escrita, obviamente, o conteúdo que estava anteriormente armazenado é perdido.
2.5.4 Seleção do CHIP
A maioria dos chips de memória tem uma ou mais entradas CS que são usadas para habilitar ou não o chip. Quando o chip não está habilitado, todas as entradas e saídas de dados estão desabilitadas (alta impedância), de modo que nenhuma operação de leitura ou de escrita pode acontecer.
Nesse estado, o conteúdo da memória não é afetado. A razão para a existência de mais de uma entrada de seleção é utilizada quando são combinados chips de memória para obtermos memórias maiores. Observe que muitos fabricantes chamam estas entradas de HABILITAÇÃO DO CHIP (CHIP ENABLE — CE). Quando as entradas CS ou CE estão no seu estado ativo, diz-se que o chip de memória está selecionado; caso contrário, diz-se que ele não está selecionado.
Muitos CIs de memória são projetados para consumir uma potência muito menor quando eles não estão selecionados. Em grandes sistemas de memória, para uma dada operação de memória, um ou mais chips são selecionados, enquanto outros não são.
2.5.5 RAM Estática (SRAM)
A operação da RAM que discutimos até agora se aplica a uma RAM estática (static RAM — SRAM), isto é, aquela que pode armazenar os dados enquanto for mantida a alimentação do chip. Células de uma memória estática são essencialmente flip-flops que permanecem em um determinado estado (armazenando um bit) indefinidamente, desde que a alimentação não seja interrompida.
2.5.6 RAM Dinâmica (DRAM)
Ao contrário das RAMs estáticas, que armazenam informações em flip-flops, as RAMs dinâmicas armazenam 1s e Os como cargas em um pequeno capacitor MOS. Como existe uma tendência para a fuga de cargas após um período de tempo, as RAMs dinâmicas necessitam de uma recarga periódica de suas células de memória. Isto é chamado de refresh da memória dinâmica. Nas DRAMs mais modernas, cada célula de memória deve ser recarregada, geralmente, a cada 2, 4, ou 8 ms, ou os dados serão perdidos.
Podemos visualizar a memória da Figura 1(a) como um arranjo de 32 registradores, no qual cada registrador guarda uma palavra de quatro bits, conforme mostra a Figura 1(b). Cada posição é mostrada contendo quatro células de memória, que guardam ls ou Os, que formam a palavra de dados armazenada nesta posição. Por exemplo, a palavra de dados 0110 está armazenada no endereço 00000, a palavra de dados 1001 está armazenada no endereço 00001, e assim por diante.